package za.co.chaotik.tron;

import java.io.InputStream;
import java.io.OutputStream;

import za.co.chaotik.tron.exceptions.TronException;

public abstract class AbstractBot {
	// Bot metadata
	/** Name of your AI bot. */
	protected String name = "Iceman";
	
	/** Bot's developer's name. */
	protected String developer = "Neo";
	
	/** Bot's developer's e-mail address. */
	protected String email = "neo@example.com";
	
	// Game state
	/** The map. */
	protected AbstractMap map;
	
	/** The AI's player. */
	protected Player player;

	// Bot metadata accessors
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getDeveloper() {
		return developer;
	}

	public void setDeveloper(String developer) {
		this.developer = developer;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	public AbstractMap getMap() {
		return map;
	}
	
	public void setMap(AbstractMap map) {
		this.map = map;
	}
	
	public Player getPlayer() {
		return player;
	}
	
	public void setPlayer(Player player) {
		this.player = player;
	}
	
	public abstract void playTurn() throws TronException;
}
